package com.carsa.blackberry.domain.dto;

import com.carsa.blackberry.util.XMLHandler;
import com.carsa.blackberry.util.XMLPortable;

/**
 * @author Nahuel Barrios.
 * @since 28/08/2010.
 * @version 1.0
 */
public class DriverDTO implements XMLPortable {

    private static final String PUESTO_AYUDANTE      = "A";
    private static final String PUESTO_CHOFER        = "C";

    private static final String XML_ELEMENT_DRIVER   = "driver";
    private static final String XML_ELEMENT_FULLNAME = "name";
    private static final String XML_ELEMENT_LEGAJO   = "legajo";
    private static final String XML_ELEMENT_PUESTO   = "puesto";
    private static final String XML_ELEMENT_ZONE     = "zona";

    private String              _fullName;
    private String              _puesto;
    private String              _legajo;
    private String		_zone;

    /**
     * @return
     */
    public boolean isDriver() {
	if (_puesto == null)
	    return false;

	return _puesto.equals(PUESTO_CHOFER);
    }

    /**
     * @return
     */
    public boolean isAyudante() {
	return !this.isDriver();
    }

    /**
     * @param xmlSource
     */
    public DriverDTO(String xmlSource) {
	super();
	this.initializeFromXML(xmlSource);
    }

    /**
     * @param fullName
     * @param legajoAyudante
     */
    public DriverDTO(String fullName, String legajoAyudante, String puesto, String zone) {
	super();
	_fullName = fullName;
	_legajo = legajoAyudante;
	_puesto = puesto;
	_zone= zone;
    }

    /**
     * @param xmlSource
     *            El {@link String} en formato XML del cual se deben recuperar los atributos para setear el objeto this.
     */
    public void initializeFromXML(String xmlSource) {
	XMLHandler xml = new XMLHandler(xmlSource);

	_fullName = xml.getElementValue(XML_ELEMENT_FULLNAME);
	_legajo = xml.getElementValue(XML_ELEMENT_LEGAJO);
	_puesto = xml.getElementValue(XML_ELEMENT_PUESTO);
	_zone= xml.getElementValue(XML_ELEMENT_ZONE);
    }

    public String toXMLString() {
	XMLHandler xmlDriver = new XMLHandler(XML_ELEMENT_DRIVER, null, null);

	xmlDriver.addElementAtRoot(XML_ELEMENT_FULLNAME, null, _fullName);
	xmlDriver.addElementAtRoot(XML_ELEMENT_LEGAJO, null, _legajo);
	xmlDriver.addElementAtRoot(XML_ELEMENT_PUESTO, null, _puesto);
	xmlDriver.addElementAtRoot(XML_ELEMENT_ZONE, null, _zone);

	return xmlDriver.toString();
    }

    /**
     * @return the fullName
     */
    public String getFullName() {
	return _fullName;
    }
    
    public String getZone(){
	return _zone;
    }

    /**
     * @param fullName
     *            the fullName to set
     */
    public void setFullName(String fullName) {
	this._fullName = fullName;
    }

    /**
     * @return the legajo
     */
    public String getLegajo() {
	return _legajo;
    }

    /**
     * @param legajo
     *            the legajo to set
     */
    public void setLegajo(String legajo) {
	this._legajo = legajo;
    }

    public String toString() {
	return "DriverDTO [_fullName=" + _fullName + ", _legajo=" + _legajo + ", _puesto=" + _puesto + ", _zone="
	        + _zone + "]";
    }
    
}
